Determining touch locations using disturbed light

ABSTRACT

A system comprises a plurality of light sources configured to provide light beams to a waveguide layer of a touch-screen. At least one of the light beams is disturbed when an object touches the touch-screen at a touch point. The system also comprises a plurality of detectors, where at least one of the detectors is configured to detect the disturbed light. The system comprises control logic coupled to the at least one detector. The control logic determines a location of the touch point as a result of the at least one detector detecting the disturbed light. The plurality of light sources and plurality of detectors are contained within a source/detector layer. The source/detector layer is separated from the waveguide layer by a mirror layer comprising a plurality of mirrors that transfer light between the source/detector layer and the waveguide layer.

BACKGROUND

Various types of computers use touch screens to receive input fromend-users. Generally, an end-user uses a finger or other instrument tomake physical contact with the touch screen. The computer coupled to thetouch screen detects the physical contact and reacts accordingly. Whiletouch screens generally are adapted to detect input from a single fingeror other instrument, they are often unable to properly detect andprocess simultaneous input from multiple such instruments. Further,touch screens require behind-screen circuitry that consumes anundesirably large amount of space.

BRIEF DESCRIPTION OF THE DRAWINGS

For a detailed description of exemplary embodiments of the invention,reference will now be made to the accompanying drawings in which:

FIG. 1 shows an illustrative touch-screen desktop computer system, inaccordance with embodiments;

FIG. 2 shows a three-dimensional view of the touch-screen display in thesystem of FIG. 1, in accordance with embodiments;

FIG. 3 shows a cross-sectional view of the display of FIG. 2, inaccordance with embodiments;

FIG. 4 shows another cross-sectional view of the display of FIG. 2, inaccordance with embodiments;

FIG. 5A shows a conceptual illustration of a sensing grid on the displayof FIG. 2, in accordance with embodiments;

FIG. 5B shows a three-dimensional view of the display of FIG. 2 inoperation, in accordance with embodiments;

FIG. 6 shows an illustrative block diagram of a system implementingtechniques disclosed herein, in accordance with embodiments;

FIG. 7 shows a state diagram of an illustrative method disclosed herein,in accordance with embodiments;

FIG. 8A shows an illustrative block diagram of another illustrativesystem implementing techniques disclosed herein, in accordance withembodiments;

FIGS. 8B-8C show actual touch points and/or phantom touch points asdetected by the system of FIG. 8A, in accordance with embodiments;

FIG. 9 shows an illustrative block diagram of a generic computer systemimplementing techniques disclosed herein, in accordance withembodiments; and

FIG. 10 shows a conceptual illustration of software architectureimplemented in the generic computer system of FIG. 9, in accordance withembodiments.

NOTATION AND NOMENCLATURE

Certain terms are used throughout the following description and claimsto refer to particular system components. As one skilled in the art willappreciate, companies may refer to a component by different names. Thisdocument does not intend to distinguish between components that differin name but not function. In the following discussion and in the claims,the terms “including” and “comprising” are used in an open-endedfashion, and thus should be interpreted to mean “including, but notlimited to . . . .” Also, the term “couple” or “couples” is intended tomean either an indirect, direct, optical or wireless electricalconnection. Thus, if a first device couples to a second device, thatconnection may be through a direct electrical connection, through anindirect electrical connection via other devices and connections,through an optical electrical connection, or through a wirelesselectrical connection. The term “adjacent” may mean “next to” or “near.”For example, if component B is located between components A and C,component C may be described as adjacent to both components A and B.

DETAILED DESCRIPTION

The following discussion is directed to various embodiments of theinvention. Although one or more of these embodiments may be preferred,the embodiments disclosed should not be interpreted, or otherwise used,as limiting the scope of the disclosure, including the claims. Inaddition, one skilled in the art will understand that the followingdescription has broad application, and the discussion of any embodimentis meant only to be exemplary of that embodiment, and not intended tointimate that the scope of the disclosure, including the claims, islimited to that embodiment.

Disclosed herein is a touch screen system that is capable of detectingmultiple, simultaneous touches. The system comprises multiple, adjacentlayers: a glass (or “waveguide”) layer, a light source/detector layerand a mirror layer in between the glass and source/detector layers. Thesource/detector layer comprises multiple light sources disposed alongone side of the layer and multiple light detectors disposed along adifferent side (e.g., adjacent and not opposite) side of the layer. Themirror layer comprises a plurality of mirrors. Each mirror is adjacentto a different light source or detector of the source/detector layer.Light emitted from a light source is reflected off of a mirror in themirror layer and enters into the glass layer. Light exiting the glasslayer is reflected off of a mirror in the mirror layer and is detectedby a light detector in the source/detector layer. Because the lightsources and detectors are located “behind” the glass layer instead ofalong a perimeter of the glass layer, space is conserved.

In operation, the light sources are activated in a rapid-fire,daisy-chain sequence. In the period of time during which each lightsource is activated, each of the light detectors is also activated in arapid-fire, daisy-chain sequence. This light emission/detection sequenceessentially forms a “grid” that quickly and repeatedly “scans” the touchscreen for touches. Thus, for example, when a finger touches the touchscreen at location “A,” the light source aligned with location A emitslight before the finger can be removed from the touch screen. The fingerdisperses the light, and the light detector aligned with location Adetects the dispersed light. The touch screen determines the point atwhich the light source that emitted the light and the light detectorthat detected the dispersed light “intersect.” This intersection pointis determined to be the touch location. The same technique can be usedfor any number of simultaneous touches. Various embodiments of thistechnique are now described.

FIG. 1 shows an illustrative computer system 100. The computer system100 comprises a display 102 and a chassis 104, which houses variouscomputer components, including processors, memory, video cards, etc. Inat least some embodiments, the display 102 comprises a touch-screendisplay. In some such embodiments, the display 102 is a primary inputdevice such that a keyboard, mouse, etc. are unnecessary. In embodimentswhere the display 102 comprises a touch-screen display, the display 102may be receptive to any type of stimulus, including human touch,styluses, etc. Although the computer system 100 is shown in FIG. 1 as adesktop computer, variations of the computer system 100 may includenotebook computers, personal digital assistants (PDAs), portable musicplayers, mobile phones, televisions, etc. The techniques disclosedherein may be implemented in some or all such devices.

FIG. 2 shows a detailed, three-dimensional view of the display 102 ofFIG. 1. The display 102 comprises multiple layers. Specifically, thedisplay 102 comprises a glass layer 200, a mirror layer 202 adjacent tothe glass layer 200, and a light source/detector layer (LSDL) 204adjacent to the glass layer 200 and the mirror layer 202. Also adjacentto the glass layer 200 is a display surface, such as a liquid crystaldisplay or plasma display (shown in FIGS. 3-4). The glass layer 200,also referred to as a “touch screen” or “waveguide layer,” comprises anysuitable type of glass capable of guiding light (e.g., light from apredetermined light wavelength band) through the glass layer 200. In atleast some embodiments, the glass layer 200 guides light using thetechnique known as total internal reflection without undue absorption.

The LSDL 204 comprises a plurality of light sources 212 (e.g., infraredlaser diodes) arranged along one side (e.g., edge) of the LSDL 204 and aplurality of detectors 210 arranged along another side of the LSDL 204.Although the light sources 212 and the detectors 210 may be arranged onany of the sides of the LSDL 204 as desired, in at least someembodiments, the light sources 212 are all disposed on a common side ofthe LSDL 204 and the detectors 210 are all disposed on another commonside of the LSDL 204. Further, in some embodiments, the side(s) of theLSDL 204 comprising the light sources 212 is/are substantiallyorthogonal to the side(s) of the LSDL 204 comprising the detectors 210.The light sources 212 may comprise, for example, infrared light emittingdiodes, infrared laser diodes, etc. The detectors 210 may comprise anysuitable type of light detector, such as complementary metal-oxidesemiconductor (CMOS) sensors.

The mirror layer 202, which abuts or at least is adjacent to the glasslayer 200 and the LSDL 204, comprises a plurality of mirror pairs 214.In some embodiments, the total number of mirror pairs 214 matches thetotal number of detectors 210 and light sources 212, with one mirrorpair for each detector 210 or light source 212. The mirror pairs 214 maybe arranged as necessary in the mirror layer 202 to achieve properintroduction of light into, and the proper extraction of light out of,the glass layer 200. However, in at least some embodiments, each mirrorpair 214 is disposed directly above (e.g., closer to the glass layer200) a detector 210 or light source 212. In some embodiments, a singlepair of substantially cylindrical mirrors may be used to facilitatelight extraction from, or the introduction of light into, the glasslayer 200 for multiple detectors or light sources along a single side ofthe display 102. Stated in another way, in such embodiments, a singlepair of cylindrical mirrors may span the length of mirror layer 202,thereby servicing some or all of the light sources 212. Similarly,another pair of cylindrical mirrors may span the width of the mirrorlayer 202, thereby servicing some or all of the detectors 210. In somesuch embodiments, baffling may be disposed between mirrors in a singlepair to mitigate light stray.

Because the display 102 comprises a touch-screen, and further becausethe detectors 210, light sources 212 and mirror pairs 214 are used todetect touches (e.g., human fingers, styluses) as described below,spacing between each of the detectors, each of the light sources andeach of the mirror pairs may be roughly equivalent to a width and/orlength of the average human fingertip (e.g., a minimum of between 0.01mm-10 mm). In other embodiments, the spacing between each of thedetectors, between each of the light sources and/or between each of themirrors may be roughly equivalent to a width of a stylus tip (e.g., aminimum of between 0.25-2 mm) that is manufactured for use with thedisplay 102. Other widths also may be used.

The detectors 210 and light sources 212 couple to circuit logic withinthe chassis 104 as shown in FIG. 6 and as described further below. Thecircuit logic in the chassis 104 powers the detectors 210 and lightsources 212. The circuit logic also controls the light sources 212(e.g., switches the light sources on/off) and the detectors 210 (e.g.,switches the detectors on/off and receives data from the detectors). Insome embodiments, the circuit logic is housed in the display 102 insteadof in the chassis 104.

In operation, the light sources 212 emit light, such as infrared laserlight. This light is reflected by the mirror pairs 214 and is providedto the glass layer 200. Light waveforms travel within the glass layer200 as described below. When a user of the computer system 100 touchesthe display 102 (e.g., using a finger, stylus or other suitableapparatus), the waveforms within the glass layer 200 are disturbed atthe point of contact between the glass layer 200 and the finger orstylus. Because light within the glass layer 200 uses total internalreflection, contact with the glass layer 200—or even proximity with theglass layer 200—causes a disturbance in the light patterns within theglass layer 200. Such disturbance is referred to as “frustrated totalinternal reflection.” One of the detectors 210 detects this disturbanceand reports it to the circuit logic in the chassis 104 via anotification signal. By determining which light source and whichdetector correspond to the disturbance, the circuit logic may determinethe precise location of the touch on the glass layer 200. The circuitlogic then supplies this location information to software applicationsas desired. This detection technique is now further elucidated.

The dashed line 206 in FIG. 2 corresponds to the cross-sectional view ofthe display 102 shown in FIG. 3. In addition to showing the componentsof FIG. 2, FIG. 3 shows the aforementioned display surface 304. In atleast some embodiments, the glass layer 200 comprises a coating on itssurface between the glass layer 200 and the display surface so that thetotal internal reflection within the glass layer 200 described above isnot disturbed, or “frustrated,” solely due to proximity with the displaysurface. The coating may comprise any appropriate, transparent materialthat has an index of refraction differing from that of the glass layer200 such that the proximity of the glass layer 200 to the displaysurface does not frustrate the total internal reflection capability ofthe glass layer 200.

As shown, in operation, the light source 212 emits light toward themirror layer 202. The mirror layer 202 comprises a mirror pair 214 thatis aligned with the light source 212. The mirror pair 214 comprises twocomponents—a mirror 214 a and another mirror 214 b. In at least someembodiments, these mirror components are curved. Multiple mirrorcomponents facilitate the spread of light throughout the glass layer200. In particular, the light beam emitted from the light source 212first strikes the mirror 214 a, which reflects the light beam toward themirror 214 b. In turn, the mirror 214 b reflects the light beam into theglass layer 200. The mirrors 214 a and 214 b are angled relative to eachother so that, when the mirror 214 b reflects the light beam, the lightbeam is introduced into the glass layer 200 at a range of angles, eachof which is less than the critical angle required for total internalreflection to occur. This range of angles is sufficiently broad so as tosaturate (i.e., prevents gaps within) the light waveform in the glasslayer 200. Specifically, waveforms 300 and 302 are introduced into theglass layer 200. Waveform 300 is representative of light introduced atthe critical angle required for total internal reflection. Waveform 302is representative of light introduced within the desired angular rangeless than the aforementioned critical angle. The waveform 302 isintroduced to saturate, or “fill in,” any gaps not covered by thewaveform 300. All together, the light entering at angles between thoseof waveforms 300 and 302 saturate at least a portion of the glass layer200 with light. In some embodiments, light emitted by a single lightsource 212 does not saturate the entire glass layer 200, but insteadsaturates only a portion of the glass layer 200, as shown in FIG. 5B anddescribed below.

The dashed line 208 in FIG. 2 corresponds to the cross-sectional view ofthe display 102 shown in FIG. 4. Disturbance of light caused by a touchon the glass layer 200 is shown as the illustrative light beam 401. Themirror layer 202 comprises a mirror pair 214. The mirror pair 214 ofFIG. 4 comprises mirror components 214 c and 214 d. Mirror 214 creceives the illustrative light beam 401 and reflects it to mirror 214d. In turn, mirror 214 d provides the illustrative light beam 401 to thedetector 210. In turn, the detector 210 captures the illustrative lightbeam and provides data pertaining to the captured light beam to circuitlogic in the display 102 and/or chassis 104.

FIG. 5A shows a conceptual “detection grid” that is formed in thedisplay 102 by the arrangement of the light sources 212 and thedetectors 210 as shown in FIG. 2. The illustration of FIG. 5A is atop-down view. Each of the horizontal lines in the conceptual gridrepresents a discrete light beam that may be emitted by a light source212. Collectively, these light beams are referred to as an array oflight beams 500. For ease of reference and discussion, the light beamsare assigned reference numerals 1-24. Each of the vertical lines in theconceptual grid represents a discrete detection path. Light disturbed bya finger or stylus travels along the detection path to a detector 210.Collectively, these detector paths are referred to as an array ofdetector paths 502. For ease of reference and discussion, the detectorpaths are assigned reference numerals 25-58.

Referring simultaneously to FIGS. 2 and 5A, in operation, the computersystem 100 causes each of the light sources 212 to fire (i.e., emitlight and then cease to emit light) in turn. Thus, for example, a lightsource 212 that corresponds to light beam 1 would fire first, followedby the light source that corresponds to light beam 2, followed by thelight source that corresponds to light beam 3, etc. In this way, each ofthe light sources 212 would fire in turn, so that after the light source212 associated with light beam 24 fires, the light source 212 thatcorresponds to light beam 1 would fire again. Stated in another way, thelight sources 212 fire in a “round-robin” fashion. The firing period(i.e., the length of time during which a light source emits light) maybe any suitable length of time (e.g., approximately less than 1picosecond−1 millisecond). The delay period (i.e., the length of timebetween the time a light source ceases emitting light and the time thenext light source begins emitting light) also may be of any suitablelength (e.g., approximately less than 1 picosecond−1 millisecond). Otherspeeds also may be used.

Each time a light source is fired, circuit logic that controls thedetectors 210 activates each of the detectors 210 in a “round-robin”fashion. For example, while the light source 212 of light beam 1 isfired, each of the detectors 210 is activated and de-activated, so thateach path 25-58 is scanned for any light disturbances caused by adisplay touch. After all detectors paths have been scanned, the lightsource 212 of light beam 1 ceases firing and, instead, the light source212 of light beam 2 fires. While the light source 212 of light beam 2fires, each of the detectors paths 25-58 is again scanned in around-robin fashion to detect any light disturbances caused by a displaytouch. This process is continued indefinitely. When a light disturbanceis detected by a detector 210, the detector 210 sends a signal to itscontrol logic, notifying the control logic of a possible touch. Thedetection period (i.e., the length of time during which a detector isactivated) may be any suitable length of time (e.g., approximately lessthan 1 nanosecond−1 second). The detection delay period (i.e., thelength of time between the time a detector is shut off and the time thenext detector is activated) also may be of any suitable length (e.g.,approximately less than 1 picosecond−1 millisecond). Other speeds alsomay be used. In this way, the light sources 212 and detectors 210 worktogether to repeatedly “scan” the display 102 for touches. In at leastsome embodiments, the time needed to “scan” the entire grid shown inFIG. 5A (e.g., less than 1 picosecond−1 second) is less than the minimumamount of time a finger or stylus might spend in contact with or nearthe glass layer 200 of the display 102 during a touch.

Still referring to FIG. 5A, an illustrative touch point 504 is shown.The touch point 504 is indicative of a location on the display 102 wherea finger, stylus, or other apparatus may have been used whileinteracting with a graphical user interface (GUI) being displayed on thedisplay 102 (e.g., in association with a software application). Inoperation, after scanning each of the detector paths 25-58 (usingdetectors 210) during each fire of light sources associated with lightbeams 1-8, no light disturbances may have been detected. However, whenthe light source 212 associated with light beam 9 is fired, the touchimpressed upon the display 102 at touch point 504 causes the light to bedisturbed. When the detector 210 associated with the detector path 38detects the disturbed light, the detector 210 sends a notificationsignal to its circuit logic. In turn, the circuit logic determines 1)which detector 210 and 2) which light source 212 were activated at thetime of detection. The circuit logic then determines the intersectionpoint on the grid that corresponds to the detection path of thatdetector and the light beam of that light source. This intersectionpoint is determined to be the touch point. The circuit logic forwardsthe intersection point to processing logic, software application(s),etc. as necessary.

FIG. 5B illustrates the detection process described above. Light source212 uses mirrors 214 a-b to emit the light beam 9 of FIG. 5A, as shown.A finger 506 touches the display 102 at touch point 504. The fingertouch causes light from the beam 9 to be disturbed, or “leaked,” shownas disturbed light 508. Using mirrors 214 c-d, the detector 210(corresponding to detection path 38 of FIG. 5A) detects the disturbedlight 508. The detector 210 then generates and sends notificationsignal(s) as described above. Multiple (e.g., simultaneous) touches alsomay be detected using the above techniques.

FIG. 6 shows the display 102 comprising the light sources 212 anddetectors 210. The light sources 212 and detectors 210 couple to displaycontrol logic 602. The display control logic 602 controls the lightsources 212 and detectors 210 as described above. The display controllogic 602 may couple to storage 600, which comprises one or moreapplications 606. The application(s) 606, when executed, cause thedisplay control logic 602 to perform at least some of the functionsdescribed above and may include a background subtraction and/or acalibration. The display control logic 602 may be housed within thecomputer system chassis 104 or within the display 102. The displaycontrol logic 602 couples to processing logic 604. The processing logic604 handles many of the processing functions of the computer system 100,such as executing operating systems, software applications, etc. Theprocessing logic 604 may execute one or more applications 608 stored onthe storage 610 and provide the application(s) with detected touchinformation. Touch data received from detectors 210 may be processed bythe display control logic 602. In some cases, multiple touches may bereceived. To ensure that multiple touches are properly interpreted, anapplication 606 analyzes the timing associated with the touches (e.g.,between touches). Although the technique is described herein as beingencoded onto the application 606 and executed by the display controllogic 602, an application 608 and processing logic 604 also may be used.In some embodiments, other, similar applications and/or processing logicmay be used. The technique is now described in detail.

FIG. 7 shows a state diagram of an illustrative method 700 implementedin accordance with embodiments. Referring to FIGS. 6 and 7, the method700 begins by awaiting input (block 702) in an “awaiting input state.”For example, the display control logic 602 may be in an idle or waitingstate. If the display control logic 602 detects a single touch on thedisplay 102 (arrow 704), the display control logic 602 records the timeand position of the touch (e.g., in a register in storage 600). Thedisplay control logic 602 is now in an “awaiting confirmation state”(block 706). Stated in another way, the display control logic 602 hasdetected a touch and is now waiting to determine whether another touchis to be received. While the display control logic 602 is waiting, ituses an internal counter (not specifically shown) or other mechanism todetermine the amount of time that has elapsed since the touch detectedat arrow 704. If the amount of time exceeds a predetermined threshold(e.g., preprogrammed into the application 606; arrow 708), or if anothertouch is detected in a location that exceeds a predetermined distancethreshold from the original touch location (e.g., preprogrammed into theapplication 606; arrow 708), the display control logic 602 confirms thatone and only one touch has been received (block 710). Stated in anotherway, the display control logic 602 enters a “one confirmed state” (block710) and the position of the touch is recorded. When all touch deviceshave been removed from the display 102 (arrow 712), the display controllogic 602 returns to an “awaiting input state” (block 702).

The predetermined time threshold described above is chosen to allowsufficient leeway for two touches to be detected as simultaneous touchesdespite the touches having been received at different times. Thissituation arises when the touches are detected at separate times or whenthe touches are detected at the same time but then are moved apart(e.g., by spreading the fingers).

If, while in the “one confirmed state,” the display control logic 602detects a second touch, the display control logic 602 may identify whichof the two touches is closest to the original touch that was confirmedin the “one confirmed state.” The display control logic 602 maydesignate this identified touch as the original touch. However, thedisplay control logic 602 generally will not transition directly fromconfirming one touch to confirming two touches.

If, while in the “awaiting confirmation state” (block 706), the displaycontrol logic 602 detects a second touch (arrow 714), the displaycontrol logic 602 enters a “two confirmed state” (block 716), in whichtwo touches are confirmed and the positions of the touches are recorded.The second touch (arrow 714) must be received within the threshold timeframe previously mentioned. The second touch (arrow 714) also must belocated in a position that is outside the position threshold previouslymentioned. Otherwise, arrow 708 is followed to the “one confirmed state”(block 710).

Another path may be followed to the “two confirmed state” (block 716).If, while in the “awaiting input state” (block 702), the display controllogic 602 detects two simultaneous touches (arrow 718), the displaycontrol logic 602 enters the “two confirmed state” (block 716). If,while in the “two confirmed state” (block 716), the display controllogic 602 determines that all touch devices have been removed from thedisplay 102 (arrow 720), the display control logic 602 returns to the“awaiting input state” (block 702).

While in the “two confirmed state” 716, one of the touches may beremoved from the touch screen while the other touch remains. In thatcase, the display control logic 602 continues to recognize two touches.The display control logic 602 approximates the location of thenow-missing touch using vectors. Specifically, the missing touchposition will be approximated at the end point of a vector whose origincorresponds to the touch that is still present on the touch screen. Thevector maintains the same angle and length as a second vector that isderived from the individual positions of the last two (or more) recordedtouch positions. In particular, the origin of the second vector ischosen to be that individual position of the last two (or more) recordedpositions that is closest to the received, singular touch position.

The steps of method 700 may be adapted to detect more than two touches.The threshold time frame and position threshold described above are bothuser-adjustable. All such variations are included within the scope ofthis disclosure.

FIG. 8A shows another system 800 in which method 700 may be implemented.The system 800 comprises processing logic 802, storage 804 that includesapplications 806-807, display control logic 808, display 810,touch-screen 812, light transceivers 814 and 816 and storage 818 thatincludes applications 820 and 822. The touch-screen 812 comprisesretro-reflective tape 830, described below, along its edges. Thetechnique of method 700 may be encoded onto software, such asapplication 806, and executed by the processing logic 802.Alternatively, the technique of method 700 may be encoded onto software,such as application 820, and executed by the display control logic 808.Unlike the system 100, which uses a grid of light sources and detectorsto detect touches, the system 800 comprises a plurality of lighttransceivers 814 and 816 that both transmit light and detectobstructions present on the touch-screen 812.

FIG. 8B shows the system 800 in operation. Assume a user uses a fingerto touch the touch-screen 812 at touch point 824. The display controllogic 808 causes the light transceiver 814 to emit light (e.g., infraredlight) across the touch-screen 812. The retro-reflective tape 830 (e.g.,material that comprises a plurality of miniature, mirrored, cornercubes) is disposed along the edges of the touch-screen 812. Theretro-reflective tape 830 causes light emitted from the lighttransceiver 814 to return, or “bounce back,” in substantially the samedirection (e.g., at substantially the same angle) in which the lightarrived at the retro-reflective tape 830. The infrared light may beemitted on either side of the touch-screen 812, as long as a finger orother obstruction is able to obstruct light as described below. Thelight transceiver 816 operates in a similar manner.

As shown, a touch established at a touch point 824 obstructs lightemitted by the light transceivers 814 and 816. Thus, light emitted bythe light transceiver 814 strikes the retro-reflective tape 830 andreturns to the light transceiver 814, except for light that is blockedby the touch at touch point 824. Similarly, light emitted by the lighttransceiver 816 strikes the retro-reflective tape 830 and returns to thelight transceiver 816, except for light that is blocked by the touch attouch point 824. In this way, each of the light transceivers 814 and 816determines a path in which an obstruction—such as a finger—lies. Atriangulation technique may be used to determine the intersection point832 of the obstruction paths 834 and 836 determined by the transceivers814 and 816, thereby identifying the precise location of the obstruction(or touch) at touch point 824.

FIG. 8C again illustrates the touch-screen 812, except the touch-screen812 in FIG. 8C has two touch points 824 and 826. The aforementionedtriangulation technique performed by the light transceivers 814 and 816identifies the touch points 824 and 826. However, unlike thetouch-screen shown in FIG. 8B, the touch-screen of FIG. 80 has multipletouch points. As a result, the light transceivers 814 and 816 identifynot only the two actual touch points 824 and 826, but they also identifytwo additional intersection points—called phantom touch points 828 whichappear to be actual touch points but, in reality, are not actual touchpoints. It is desirable to distinguish between actual touch points andphantom touch points, because only actual touch points should be used.The system 800 distinguishes between actual touch points and phantomtouch points as now described.

When executed by the display control logic 808, the application 822causes the display control logic 808 to perform the triangulationtechnique mentioned above using the light transceivers 814 and 816. Whenperforming the triangulation technique, the display control logic 808uses the angles of obstruction 846, 848, 850 and 852 that correspond toobstruction paths 838, 840, 842 and 844, respectively, to predictproperties of each of the multiple touch points 824, 826 and 828. Thedisplay control logic 808 also uses the orientations of the obstructionpaths 838, 840, 842 and 844 in relation to the touch screen 812 topredict properties of each of the multiple touch points 824, 826 and828. Further, the display control logic 808 may maintain additionalinformation pertaining to the light transceivers 814 and 816corresponding to their locations in relation to the touch screen 812.

Using some or all information collected by the light transceivers 814and 816, the display control logic 808 determines spatial propertiesassociated with the touch points 824, 826 and 828. Such propertiesinclude the touch points' probable size, shape, orientation, etc. Thedisplay control logic 808 then may compare the different spatialproperties of the touch points 824, 828 and 828 to determine which ofthe touch points 824, 826 and 828 are most likely to be the actual touchpoints and which are most likely to be the phantom touch points. Thedisplay control logic 808 may perform such comparison by weighting someor all of the spatial properties, using preprogrammed formulas, etc. asdesired. Determination of each of the aforementioned spatial propertiesis now described.

The display control logic 808 may determine the shape of a touch pointusing the obstruction path angle associated with that touch point inconjunction with the location of the touch point (i.e., usingtriangulation). For example, because touch points are assumed to beellipsoid (e.g., because fingers and fingertips tend to resembleellipses), the display control logic 808 may use optical information,such as the widths of the touch points, from the light transceivers 814and 816 to determine lengths of the major and minor axes associated withthe touch point. Specifically, after the display control logic 808 hasused the light transceivers 814 and 816 to determine the location of thetouch point whose shape is to be determined, the display control logic808 uses the obstruction angles corresponding to the touch point, aswell as the distance of the touch point from the light transceivers 814and 816, to determine the length of a major axis of the touch point(i.e., using basic trigonometric techniques). A similar technique may beused to determine the length of a minor axis of the touch point. Thedisplay control logic 808 then may determine the difference between thelengths of the major and minor axes and divide by the absolute value ofthe difference to determine the eccentricity of the ellipsoid touchpoints. The greater the eccentricity, the more ellipsoid the touch pointis. Other, similar techniques may be used to determine shape informationof touch points using some or all data gathered by the lighttransceivers 814 and 816. For example, referring to FIG. 8C, if theshape of the touch point 824 is to be determined, approximations toinscribing an ellipse within the diamond-shaped obstruction 825 may bemade.

In some embodiments, the display control logic 808 may be programmed toassume that, of four possible touch points, the two actual touch pointsand the two phantom touch points will be arranged in an alternatingfashion. This assumption is based on the fact that actual and phantomtouch points generally tend to be arranged in such an alternatingfashion. Thus, for example, referring to FIG. 8C, the touch points areshown in an alternating fashion—the actual touch point 824, followed byone of the phantom touch points 828, followed by the actual touch point826, followed by another phantom touch point 828. Thus, if the displaycontrol logic 808 accurately determines the identity of just one of thepossible touch points (i.e., whether the touch point is an actual touchpoint or a phantom touch point) using any of the techniques describedherein, the display control logic 808 may automatically determine theidentities of the remaining touch points, since the touch pointsalternate between actual touch points and phantom touch points. In somesuch cases, the identity of just one of the possible touch points isimmediately, and accurately, determined if the possible touch point islocated off of the touch screen 812. A possible touch point that isdetermined to be off of the touch screen 812 is a phantom touch point,thereby establishing the identities of the remaining possible touchpoints.

The display control logic 808 may determine the size of a touch pointusing obstruction path orientations and angles as well as the locationinformation of the light transceivers 814 and 816. As previouslymentioned, the display control logic 808 may determine the lengths ofthe major and minor axes of each of the possible touch points. Thedisplay control logic 808 may use these lengths to determine the size(i.e., area) associated with each of the possible touch points. Todetermine the area of a possible touch point, the display control logic808 multiplies the product of the major and minor axes by pi. Afterdetermining the areas of each of each of the possible touch points, thedisplay control logic 808 may determine the average size of all of thepossible touch points. The display control logic 808 then may comparethe size of each possible touch point, or sizes of pairs of possibletouch points, to the average size of all of the possible touch points todetermine which of the touch points are most likely to be the actualtouch points and which are most likely to be phantom touch points. Insome embodiments, touch points having sizes that closely approximate theaverage touch point size are more likely to be actual touch points thanare touch points whose sizes do not closely approximate the averagetouch point size. Other, similar techniques also may be used.

The display control logic 808 may determine the orientation of a touchpoint based on information collected using the light transceivers 814and 816. Specifically, for each possible touch point, the displaycontrol logic 808 determines the obstruction angles associated with thattouch point as well as the position of that touch point in relation tothe light transceivers 814 and 816. Using this information, the displaycontrol logic 808 predicts whether that possible touch point ishorizontally or vertically oriented. Assume that the obstruction anglemeasured by one of the light transceivers (e.g., light transceiver 814)is larger than the obstruction angle measured by the other lighttransceiver (e.g., light transceiver 816). In such a case, if thedisplay control logic 808 determines that that possible touch point islocated closer to the light transceiver 814 than to the lighttransceiver 816, then—geometrically speaking—the possible touch point ismore likely to be horizontally oriented than it is to be verticallyoriented. However, if the possible touch point is located closer to thelight transceiver 816 than to the light transceiver 814, then thepossible touch point is more likely to be vertically oriented than it isto be horizontally oriented. Similarly, assume the obstruction anglemeasured by the light transceiver 816 is larger than that measured bylight transceiver 814. If the possible touch point is located closer tothe light transceiver 816 than to the light transceiver 814, the touchpoint is more likely to be horizontally oriented. Otherwise, the touchpoint is more likely to be vertically oriented. In general, if theorientation of a possible touch point does not match the orientations ofother possible touch points, that possible touch point is likely to be aphantom touch point.

In performing the above determinations, the display control logic 808may give more or less weight to different factors. For example, thedisplay control logic 808 may give extra weight to determinations maderegarding touch point shapes and may give less weight to determinationsmade regarding touch point orientation. Touch point predictions may beweighted as desired. In some embodiments, after weighting, thepredictions may be combined to generate a cumulative value, orprediction, which then indicates which touch points—having taken some orall available information into consideration—are most likely to beactual touch points and which are most likely to be phantom touchpoints. In some embodiments, the factors described above may be assignednumerical values based on pre-programmed schemes and, after beingweighted, may be used in one or more pre-programmed formulas todetermine (or predict) which of the possible touches are actual touchesand which are phantom touches. In some embodiments, weighting is notperformed. Any and all variations on these techniques are encompassedwithin the scope of this disclosure.

The obstruction path angle information described above is collected by alight transceiver and provided to the display control logic 808 usingsignals. The display control logic 808 may monitor such signals forchanges (e.g., dips) that are indicative of obstruction paths. Thedisplay control logic 808 may analyze such changes (e.g., dip width) todetermine the angle associated with an identified obstruction path.Other information, such as touch point angle, also may be determinedusing such signal changes. Having obtained information in this manner,the display control logic 808 may use the factors described above topredict which of the possible touch points are actual touch points andwhich are phantom touch points. Having predicted which are the actualtouch points, the display control logic 808 may forward such predictionsto any applicable software that may be running at that time.

In some cases, the two actual touches may not be introduced to thetouch-screen 812 at the same time. Stated in another way, one of thetouches may be introduced, followed by the second touch at a later time.The system 800 is adapted to distinguish between single touches,multiple touches in series, and multiple simultaneous touches. Morespecifically, the application 822 is programmed so that when the displaycontrol logic 808 detects a first touch on the touch-screen 812, thedisplay control logic 808 waits for a predetermined (e.g.,user-specified) length of time before processing the first touch as amouse-down event. Waiting for this delay time allows for theintroduction of a second touch.

This delay may be aborted if the first touch is lifted off of thetouch-screen 812. In such a case, the display control logic 808processes the first touch as a click event. Alternatively, this delaymay be aborted if the first touch is moved a predetermined distance fromthe original location of the first touch, because such a move indicatesthat the user intends to “drag” an object on the graphical userinterface (GUI) of the touch-screen 812. In such a case, the displaycontrol logic 808 processes the first touch and drag as a drag event.Further, this delay may be aborted if a second touch is detected on thetouch-screen 812. If the delay time expires before a second touch isdetected, only a first touch event is processed, and no other touchesare processed until all touches are released from the touch-screen 812.Similarly, if a second touch is detected during the delay, the delaythen expires and only double touch events are processed until alltouches have been lifted off of the touch-screen 812. Other such touchrules may be programmed into the application 822 as desired.

Although the above techniques are generally described as having beenperformed by the display control logic 808, in some embodiments, theabove techniques may be performed by the processing logic 802 whileexecuting the application 807.

Regardless of the type of computer system used (e.g., system 100, system800 or another system implementing the techniques disclosed herein),touch data collected using the display and the display control logic issubsequently provided to the appropriate application(s) that are beingexecuted. For example, a user of the computer system might see a GUI onthe display. The GUI is generated using an application. The userinteracts with the GUI by touching the display. The display controllogic collects this touch information and provides it to the applicationthat was used to generate the GUI with which the user was interacting.

FIG. 9 shows a generic computer system 1000 (e.g., illustrative ofsystems 100 and/or 800) comprising software architecture that collectsand routes touch data appropriately. The computer system 1000 comprisesa touch-screen display 1002, processing logic 1004, storage 1006 andother circuit logic 1008 (e.g., video cards, buses). The storage 1006comprises a system service application (“SS”) 1010 and an administrationapplication (“AA”) 1012. The storage 1006 also comprises one or moregeneric user applications 1014 and a standardized driver stack (“SDD”)1016. The SS 1010 may be defined as a program that operates to acceptinput from hardware and to provide that input to the operating systemand/or an administration application (AA). The AA 1012 may be defined asa program that accepts input from the system service application andprovides that input to the operating system and/or cooperatingapplications on a per user basis. The SDD 1016 may be defined as a setof programs intended to interpret input from cooperating hardware and topresent it to applications in a uniform manner independent ofimplementation. The applications 1014 include an operating system (“OS”)1018, such as the WINDOWS® VISTA® OS. When software stored on thestorage 1006 is described herein as performing an action, it isunderstood that the processing logic 1004 actually performs that actionas a result of executing the software.

The SS 1010 is initiated upon boot-up of the OS 1018. The SS 1010receives information from and transfers information to the display 1002via the SDD 1016. When no user is logged in to the system 1000, the SS1010 configures the display 1002 accordingly (e.g., with a log-inscreen). As each of a plurality of users logs in, a separate instance ofthe AA 1012 is initiated and executed by the processing logic 1004. Whenthe SS 1010 receives touch data from the display 1002, the SS 1010routes the touch data to the instance of the AA 1012 that corresponds tothe user who is currently logged in and currently active. The touch datais transferred using any suitable/appropriate methods of interprocesscommunication. In turn, the AA 1012 instance that receives the touchdata analyzes the touch data to determine how the touch data should befurther routed. In some embodiments, if the AA 1012 determines that thetouch data includes only a single touch, the AA 1012 provides the singletouch to the OS 1018 for default, or “normal,” processing. However, insome embodiments, if the AA 1012 determines that the touch data includesmultiple touches, the AA 1012 provides the touch data to applications1014 presently running that may make use of multiple touch data forpurposes such as expand, contract, grab and drag operations. Manyvariations on this type of routing are possible. All such variations areincluded within the scope of this disclosure.

The SS 1010 determines to which instance of the AA 1012 touch datashould be routed based on user context information received from theinstances of the AA 1012. The user context information provided by eachinstance of the AA 1012 indicates a status of the user associated withthat instance. For example, the user context information may indicatethat a user is currently logged in; that the user is currently logged inbut inactive; that the user is currently logged in and active; that ascreen saver is running, etc. User context information may be programmedto include any such information, as desired.

As previously explained, the user context information may be used toroute received touch data to the proper instance of the AA 1012 (e.g.,the instance corresponding to a logged-in and active user). However, theuser context information also facilitates data transfer in the oppositedirection. Specifically, the SS 1010 may use the user contextinformation to configure the touch screen display 1002 in accordancewith user preferences. For instance, if a particular instance of the AA1012 corresponds to a currently logged-in, active user, the SS 1010 willconfigure the touch screen display 1002 in accordance with that user'spreferences. Each user's preferences may be stored on storage 1006—inthe form of a database, for example.

FIG. 10 shows a conceptual illustration 1020 of the softwarearchitecture described above. As shown, the display hardware 1002 (whichincludes display control logic) communicates with the SDD 1016. In turn,the SDD 1016 communicates with the SS 1010. When the SS 1010 receivestouch data from the display hardware 1002 via the SDD 1016, the SS 1010routes the touch data to one of the (potentially) multiple instances ofthe AA 1012 that may be running on the system 1000. The AA 1012 instanceto which the touch data is routed depends on user context informationreceived from the instance(s) of the AA 1012 (e.g., depending on whichuser is currently logged in and active on the system 1000 at the time).For example, if a user is presently active, the SS 1010 routes the touchdata to that user's instance of the AA 1012. Each of the multipleinstances of the AA 1012 may communicate with one or more applications1014, as shown. Thus, an instance of the AA 1012 that receives touchdata may route the touch data to one of the applications 1014 that iscurrently in use (e.g., the “active” or “topmost” application). In someembodiments, the instance of the AA 1012 that receives the touch dataroutes the touch data to an OS 1018, which is one of the applications1014. Data is generally routed from the AA 1012 instance to the OS 1018when the touch data includes only a single touch. If the touch dataincludes a double touch, the instance of the AA 1012 provides the touchdata to appropriate application(s) 1014 that may use multiple touch data(e.g., for window expansion or contraction, drag events). However,various such routes are possible and are included within the scope ofthis disclosure.

As previously explained, the SS 1010 may use the SDD 1016 to configureparameters on the display 1002 in accordance with whichever instance ofthe AA 1012 that may be running at the time. The SS 1010 may furtherconfigure parameters on the display 1002 in accordance with whicheverapplications 1014 that may be running at the time (in association withthe particular instance of the AA 1012 that is running at the time).

The above discussion is meant to be illustrative of the principles andvarious embodiments of the present invention. Numerous variations andmodifications will become apparent to those skilled in the art once theabove disclosure is fully appreciated. It is intended that the followingclaims be interpreted to embrace all such variations and modifications.

What is claimed is:
 1. A system, comprising: a plurality of lightsources configured to provide light beams to a waveguide layer of atouch-screen, at least one of said light beams is disturbed when anobject touches the touch-screen at a touch point; a plurality ofdetectors, at least one of the detectors configured to detect saiddisturbed light; and control logic coupled to the at least one detector,the control logic determines a location of said touch point as a resultof said at least one detector detecting said disturbed light; whereinthe plurality of light sources and plurality of detectors are containedwithin a source/detector layer, the source/detector layer is separatedfrom the waveguide layer by a mirror layer comprising a plurality ofmirrors that transfer light between the source/detector layer and thewaveguide layer.
 2. The system of claim 1, wherein at least some of theplurality of light sources comprise infrared laser diodes.
 3. The systemof claim 1, wherein said control logic determines said location bydetermining which of the plurality of light sources emitted the lightbeam that was disturbed.
 4. The system of claim 1, wherein the pluralityof light sources is arranged along a different side of thesource/detector layer than the plurality of detectors.
 5. The system ofclaim 1, wherein said disturbed light comprises light dispersed from alight beam emitted by one of said plurality of light sources.
 6. Thesystem of claim 1, wherein the plurality of light sources is disposedadjacent to a side of the touch-screen that is orthogonal to anotherside of the touch-screen adjacent to which said plurality of detectorsis disposed.
 7. The system of claim 1, wherein an interval betweenadjacent light sources is between 0.01 mm and 10 mm.
 8. The system ofclaim 1, wherein each of the plurality of light sources is associatedwith a mirror pair comprising two components, and wherein the mirrorpair transfers a light beam from a light source to said touch-screen,the mirror pair spreads the light beam into a range of angles whenproviding the light beam to the touch-screen.
 9. The system of claim 1,wherein, while a first one of the plurality of light sources isactivated, each of the plurality of detectors is activated anddeactivated, and wherein, while a second one of the plurality of lightsources is activated, each of the plurality of detectors is activatedand deactivated, the second one of the plurality of light sources isactivated while the first one of the plurality of light sources isdeactivated.
 10. The system of claim 1, wherein all of the plurality oflight sources and all of the plurality of detectors are activated within100 milliseconds.
 11. A system, comprising: a first layer capable ofguiding light waves; a second layer adjacent to the first layer, thesecond layer comprises multiple reflective devices; a third layeradjacent to the second layer, the third layer comprises multiple lightsources and multiple detectors, the light sources arranged on one ormore of a pair of sides of the third layer and the detectors arranged onone or more of another pair of sides of the third layer; and controllogic coupled to the multiple detectors; wherein each of the lightsources is activated so that light passes from that light source to thefirst layer via one of the multiple reflective devices, each of thelight sources is activated and deactivated in a round-robin fashion;wherein, while each of the light sources is activated, each of themultiple detectors is activated and deactivated in a round-robinfashion; wherein, as a result of one of the multiple detectors detectinglight, the control logic determines by which of the multiple lightsources the detected light was generated.
 12. The system of claim 11,wherein said one of the multiple detectors detects said light reflectedas a result of frustrated total internal reflection to the first layerat a location that corresponds to said one of the multiple detectors andthe light source that generated said detected light.
 13. The system ofclaim 11, wherein the pair of sides is orthogonal to the another pair ofsides.
 14. The system of claim 11, wherein a total amount of time foreach of the multiple light sources to be activated and deactivated in around-robin fashion, and for each of the multiple detectors to beactivated and deactivated in a round-robin fashion, is less than 100milliseconds.
 15. The system of claim 11, wherein said light that passesfrom the light source to the first layer via one of the multiplereflective devices travels through said first layer in a light beam thatruns parallel to said another pair of sides.
 16. The system of claim 11,wherein the system comprises a system selected from the group consistingof a display, a television, a desktop computer system, a mobilecommunication device, a personal digital assistant and a portable musicplayer.
 17. A method, comprising: generating a light beam thatpropagates along a length of a display using total internal reflection;frustrating the total internal reflection of the light beam so as toleak at least part of said light beam; activating and deactivating eachof a plurality of detectors until one of said detectors detects areflected portion of said leaked light; and using a location of thedetector that detects said reflected portion of the leaked light and alocation of a light source that generated said light beam, determiningone or more locations at which said total internal reflection of thelight beam was frustrated.
 18. The method of claim 17, whereingenerating said light beam along said length comprises using the lightsource to generate said light beam, providing said light beam to a pairof mirrors, and introducing said light beam from the pair of mirrorsinto the display, said display comprises a layer of glass capable ofguiding waveforms.
 19. The method of claim 17 further comprisingproviding said one or more locations to a processor that is executing anapplication and that is displaying a graphical user interface (GUI)associated with said application.
 20. The method of claim 17, whereingenerating said light beam comprises using infrared laser diodes.
 21. Asystem, comprising: a light source and detector layer (LSDL) comprisinga plurality of light sources disposed along at least one of a pair ofsides of the LSDL and further comprising a plurality of detectorsdisposed along at least one of another pair sides of the LSDL; a mirrorlayer adjacent to said LSDL, the mirror layer comprising multiple mirrorpairs, at least one of said multiple mirror pairs aligned with one ofthe plurality of light sources, at least another one of said mirrorpairs aligned with one of the plurality of detectors; and a glass layeradjacent to said mirror layer, the glass layer at least partiallyseparated from the LSDL by the mirror layer.
 22. The system of claim 21,wherein the plurality of light sources are aligned with a single mirrorpair that reflects light emitted from the plurality of light sourcesinto the glass layer.
 23. The system of claim 21, wherein the pluralityof detectors are aligned with a single mirror pair that reflects lightfrom the glass layer to said plurality of detectors.
 24. The system ofclaim 21, wherein the plurality of light sources are spaced between 1 mmand 10 mm apart.
 25. The system of claim 21, wherein the systemcomprises a computer display.